#define KEY_DRAG_THRESHOLD "drag-threshold"
#define KEY_FONT_NAME "font-name"
#define KEY_COLOR_SCHEME "color-scheme"
+#define KEY_ACCENT_COLOR "accent-color"
#define KEY_HIGH_CONTRAST "high-contrast"
#define KEY_GTK_ICON_THEME "icon-theme"
#define KEY_MAGNIFIER_ACTIVE "screen-magnifier-enabled"
PROP_DRAG_THRESHOLD,
PROP_FONT_NAME,
PROP_COLOR_SCHEME,
+ PROP_ACCENT_COLOR,
PROP_HIGH_CONTRAST,
PROP_GTK_ICON_THEME,
PROP_MAGNIFIER_ACTIVE,
gint drag_threshold;
double slow_down_factor;
StSystemColorScheme color_scheme;
+ StSystemAccentColor accent_color;
};
G_DEFINE_TYPE (StSettings, st_settings, G_TYPE_OBJECT)
case PROP_COLOR_SCHEME:
g_value_set_enum (value, settings->color_scheme);
break;
+ case PROP_ACCENT_COLOR:
+ g_value_set_enum (value, settings->accent_color);
+ break;
case PROP_MAGNIFIER_ACTIVE:
g_value_set_boolean (value, settings->magnifier_active);
break;
ST_SYSTEM_COLOR_SCHEME_DEFAULT,
ST_PARAM_READABLE);
+ /**
+ * StSettings:accent-color:
+ *
+ * The current accent color.
+ */
+ props[PROP_ACCENT_COLOR] = g_param_spec_enum ("accent-color",
+ "accent color",
+ "accent color",
+ ST_TYPE_SYSTEM_ACCENT_COLOR,
+ ST_SYSTEM_ACCENT_COLOR_BLUE,
+ ST_PARAM_READABLE);
+
/**
* StSettings:magnifier-active:
*
g_object_notify_by_pspec (G_OBJECT (settings),
props[PROP_COLOR_SCHEME]);
}
+ else if (g_str_equal (key, KEY_ACCENT_COLOR))
+ {
+ settings->accent_color = g_settings_get_enum (g_settings, key);
+ g_object_notify_by_pspec (G_OBJECT (settings), props[PROP_ACCENT_COLOR]);
+ }
}
static void
KEY_GTK_ICON_THEME);
settings->color_scheme = g_settings_get_enum (settings->interface_settings,
KEY_COLOR_SCHEME);
+ settings->accent_color = g_settings_get_enum (settings->interface_settings,
+ KEY_ACCENT_COLOR);
settings->drag_threshold = g_settings_get_int (settings->mouse_settings,
KEY_DRAG_THRESHOLD);
settings->magnifier_active = g_settings_get_boolean (settings->a11y_applications_settings,
ST_SYSTEM_COLOR_SCHEME_PREFER_LIGHT = G_DESKTOP_COLOR_SCHEME_PREFER_LIGHT,
} StSystemColorScheme;
+typedef enum {
+ ST_SYSTEM_ACCENT_COLOR_BLUE = G_DESKTOP_ACCENT_COLOR_BLUE,
+ ST_SYSTEM_ACCENT_COLOR_TEAL = G_DESKTOP_ACCENT_COLOR_TEAL,
+ ST_SYSTEM_ACCENT_COLOR_GREEN = G_DESKTOP_ACCENT_COLOR_GREEN,
+ ST_SYSTEM_ACCENT_COLOR_YELLOW = G_DESKTOP_ACCENT_COLOR_YELLOW,
+ ST_SYSTEM_ACCENT_COLOR_ORANGE = G_DESKTOP_ACCENT_COLOR_ORANGE,
+ ST_SYSTEM_ACCENT_COLOR_RED = G_DESKTOP_ACCENT_COLOR_RED,
+ ST_SYSTEM_ACCENT_COLOR_PINK = G_DESKTOP_ACCENT_COLOR_PINK,
+ ST_SYSTEM_ACCENT_COLOR_PURPLE = G_DESKTOP_ACCENT_COLOR_PURPLE,
+ ST_SYSTEM_ACCENT_COLOR_SLATE = G_DESKTOP_ACCENT_COLOR_SLATE,
+} StSystemAccentColor;
+
#define ST_TYPE_SETTINGS (st_settings_get_type ())
G_DECLARE_FINAL_TYPE (StSettings, st_settings, ST, SETTINGS, GObject)